package top.tangyh.lamp.care.vo.save;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import java.time.LocalDateTime;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
import top.tangyh.lamp.care.vo.result.BObsvRecordResultVO;

import java.io.Serializable;
import java.util.List;

/**
 * <p>
 * 表单保存方法VO
 * 观察项记录表
 * </p>
 *
 * @author zqb
 * @date 2024-07-24 15:47:49
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString(callSuper = true)
@Accessors(chain = true)
@EqualsAndHashCode
@Builder
@Schema(description = "观察项记录保存入参")
public class BObsvRecordSaveVO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 病人识别号
     */
    @Schema(description = "病人识别号")
    @Size(max = 64, message = "病人识别号长度不能超过{max}")
    private String patientIdent;
    /**
     * 标识,或即观察标识，说明：为生命特征指标编码如spo2
     */
    @Schema(description = "标识,或即观察标识，说明：为生命特征指标编码如spo2")
    @Size(max = 64, message = "标识,或即观察标识，说明：为生命特征指标编码如spo2长度不能超过{max}")
    private String obsvCode;
    /**
     * 生命体征参数值
     */
    @Schema(description = "生命体征参数值")
    @Size(max = 64, message = "生命体征参数值长度不能超过{max}")
    private String propValue;
    /**
     * 记录时间
     */
    @Schema(description = "记录时间")
    private Long recTime;
    /**
     * 是否范围内，说明：0 否，1是，默认1
     */
    @Schema(description = "是否范围内，说明：0 否，1是，默认1")
    private Integer isRange;
    /**
     * 是否逻辑删除 0-否，1-是，默认是0
     */
    @Schema(description = "是否逻辑删除 0-否，1-是，默认是0")
    private Integer isDeleted;

    /**
     * 住院号
     */
    @Schema(description = "住院号")
    @Size(max = 60, message = "住院号长度不能超过{max}")
    private String hospitalNumber;
    /**
     * 观察项id
     */
    @Schema(description = "观察项id")
    private Long obsvId;
    /**
     * 创建时数据来源，说明：dev--来自设备，hand--用户手填
     */
    @Schema(description = "创建时数据来源，说明：dev--来自设备，hand--用户手填")
    @Size(max = 20, message = "创建时数据来源，说明：dev--来自设备，hand--用户手填长度不能超过{max}")
    private String createSource;
    /**
     * 采集人
     */
    @Schema(description = "采集人")
    @Size(max = 255, message = "采集人长度不能超过{max}")
    private String caijiren;
    /**
     * 采集人工号
     */
    @Schema(description = "采集人工号")
    @Size(max = 255, message = "采集人工号长度不能超过{max}")
    private String caijirenGh;
    /**
     * 无用
     */
    @Schema(description = "无用")
    private Integer isDaiji;
    /**
     * 
     */
    @Schema(description = "")
    private Integer isVisible;


    @Schema(description = "数据类型，说明：取数据字典name值，值为 integer,float,struct,enum,boolean,string")
    private String dataType;

    @Schema(description = "生命体征结构或枚举 的值")
    @Valid
    private List<BObsvRecordSaveVO> detail;
}
